package com.xvheng.module.backendApi.service.impl;

import java.math.BigDecimal;
import java.util.List;
import com.xvheng.common.utils.DateUtils;
import com.xvheng.common.utils.uuid.IdUtils;
import com.xvheng.module.backendApi.domain.Coupon;
import com.xvheng.module.backendApi.mapper.CouponMapper;
import com.xvheng.module.backendApi.service.ICouponService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 卡券信息Service业务层处理
 * 
 * @author xvheng
 * @date 2025-01-03
 */
@Service
public class CouponServiceImpl implements ICouponService
{
    @Autowired
    private CouponMapper couponMapper;

    /**
     * 查询卡券信息
     * 
     * @param id 卡券信息主键
     * @return 卡券信息
     */
    @Override
    public Coupon selectCouponById(String id)
    {
        return couponMapper.selectCouponById(id);
    }

    /**
     * 查询卡券信息列表
     * 
     * @param coupon 卡券信息
     * @return 卡券信息
     */
    @Override
    public List<Coupon> selectCouponList(Coupon coupon)
    {
        return couponMapper.selectCouponList(coupon);
    }

    /**
     * 新增卡券信息
     * 
     * @param coupon 卡券信息
     * @return 结果
     */
    @Override
    public int insertCoupon(Coupon coupon)
    {
        coupon.setId(IdUtils.fastSimpleUUID());
        coupon.setCreateTime(DateUtils.getNowDate());
        //为次卡同步余额,前台需校验次数不能有小数无法同时校验余额和次数
        if(null != coupon.getType() && coupon.getType().equals("T")){
            BigDecimal usableTime = coupon.getUsableTime();
            coupon.setUsableMoney(usableTime);
        }
        return couponMapper.insertCoupon(coupon);
    }

    /**
     * 修改卡券信息
     * 
     * @param coupon 卡券信息
     * @return 结果
     */
    @Override
    public int updateCoupon(Coupon coupon)
    {
        coupon.setUpdateTime(DateUtils.getNowDate());
        return couponMapper.updateCoupon(coupon);
    }

    /**
     * 批量删除卡券信息
     * 
     * @param ids 需要删除的卡券信息主键
     * @return 结果
     */
    @Override
    public int deleteCouponByIds(String[] ids)
    {
        return couponMapper.deleteCouponByIds(ids);
    }

    /**
     * 删除卡券信息信息
     * 
     * @param id 卡券信息主键
     * @return 结果
     */
    @Override
    public int deleteCouponById(String id)
    {
        return couponMapper.deleteCouponById(id);
    }
}
